<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <meta http-equiv="X-UA-Compatible" content="ie=edge" />
  <title>Document</title>
  <style>
    .box {
      width: 350px;
      height: 160px;
      background-color: #222;
      margin: 30px;
    }

    .box {
      /* *** 一定要在border-image之前就设置盒子的边框属性。 要有边框才可以使用边框背景图 */
      border: 20px solid #222;
      /* 边框背景图border-image复合属性 */
      border-image: url(./images/border.png) 55 40 25 130 stretch;
      /* 注意点1： 如果不规则图形， 盒子的边框宽度也要设置成不规则宽度 */
      border-width: 55px 40px 25px 130px;
      /* 注意点2： 如果给元素设置了border，则会把盒子宽高撑开
          默认 box-sizing: content-box 外扩盒子 = content + padding + border
          解决方案，设置内减盒子  box-sizing: border-box  总宽度不变，有了padding和border之后，盒子content会自动内减
          */
      box-sizing: border-box;
      /* 注意点3：设置内减盒子之后，由于content自动内减。影响盒子内容布局
          解决方案： 给盒子添加一个子元素，采用子绝父相定位来把内容撑开
          */
      position: relative;

    }

    .inner {
      /* 子绝父相 */
      position: absolute;
      left: -130px;
      top: -55px;
      right: -40px;
      bottom: -25px;
      padding: 20px 30px
    }

    .box2 {
      width: 400px;
      height: 300px;
    }

    .box3 {
      width: 500px;
      height: 200px;
    }
  </style>
</head>

<body>
  <div class="box box1">
    <div class="inner">
      111
    </div>
  </div>
  <div class="box box2"></div>
  <div class="box box3"></div>
</body>

</html>